package cn.stylefeng.guns.modular.business.frequency.orderfinish.service;

import cn.stylefeng.guns.core.pojo.page.PageResult;
import cn.stylefeng.guns.modular.business.frequency.orderfinish.entity.OrderFinish;
import cn.stylefeng.guns.modular.business.frequency.orderfinish.model.param.FinishRecordContractVO;
import cn.stylefeng.guns.modular.business.frequency.orderfinish.model.param.FinishRecordDTO;
import cn.stylefeng.guns.modular.business.frequency.orderfinish.model.param.OrderFinishParam;
import cn.stylefeng.guns.modular.business.frequency.orderfinish.model.param.OrderFinishRecordVO;
import cn.stylefeng.guns.modular.business.frequency.orderlogistics.model.param.ErrorMsg;
import cn.stylefeng.guns.modular.business.frequency.ordersub.model.param.OrderDTO;
import cn.stylefeng.guns.modular.business.frequency.ordersub.model.result.PkgOrderFinishRecord;
import cn.stylefeng.guns.modular.business.frequency.ordersub.model.result.PkgOrderSub;
import cn.stylefeng.guns.modular.business.frequency.statistics.PkgOrderFinish;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 订单完成确认表 服务类
 *
 * @author yujie
 * @date 2023/05/09 17:16
 */
public interface OrderFinishService extends IService<OrderFinish> {

    Page getWaitFinishListPage(Page page, OrderDTO orderDTO);


    boolean checkFinishAdd(OrderFinishRecordVO orderFinishRecordVO, ErrorMsg errorMsg);


    void finish(Long userId, OrderFinishRecordVO orderFinishRecordVO);


    boolean checkLevelFinish(OrderFinishRecordVO orderFinishRecordVO, StringBuilder errorMsg);


    void levelFinish(OrderFinishRecordVO orderFinishRecordVO);


    Page<PkgOrderFinish> getFinishOverListPage(Page page, FinishRecordDTO orderDTO);


    PkgOrderFinishRecord getPkgOrderFinishRecordDetail(String id);

    List<PkgOrderSub> getPkgOrderFinishRecordDetail(FinishRecordContractVO finishRecordContractVO) ;

    List<String> getOrderFinishPayImage(Long orderId);

}